package org.dromara.oce.domain;

import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serial;
import java.io.Serializable;

/**
 * 巨量项目广告模版/策略对象 oce_template
 *
 * @author dsbb
 * @date 2025-06-12
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("oce_template")
public class OceTemplate extends BaseEntity  {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     *
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 模版名称
     */
    private String name;

    /**
     * 备注描述
     */
    private String remark;

    /**
     * 管家账号id
     */
    private Long accountId;

    /**
     * 推广目的
     */
    private String aim;

    /**
     * 投放模式
     */
    private String deliveryMode;

    /**
     * 营销场景
     */
    private String marketing;

    /**
     * 广告类型
     */
    private String adType;

    /**
     * 投放类型
     */
    private String deliveryType;

    /**
     * 项目json
     */
    private String projectJson;

    /**
     * 广告json
     */
    private String promotionJson;

    /**
     * 删除标志
     */
    @TableLogic
    private String delFlag;

    /**
     * 规则配置-项目生成规则 1按总广告数/每项目广告数
     */
    private String projectGenerateRule;

    /**
     * 项目-关联产品投放-匹配方式
     * 1所有项目选择同一组产品   2每个账户选择一组产品 3每个项目选择一组产品
     */
    private String projectProductWay;

    /**
     * 项目排期与预算-配置模式
     * 1统一配置  2分账户配置
     */
    private String projectBudgetWay;

    /**
     * 规则配置-广告生成规则  1按创意组数
     */
    private String projectAdRule;

    /**
     * 广告-推广身份1手动选择 2从创意组匹配
     */
    private String promoteIdentitySource;

    /**
     * 广告-推广身份匹配方式   1所有广告选择同一个抖音号 2每个账户选择一个抖音号 3每个项目选择一个抖音号 4每个广告选择一个抖音号
     */
    private String promoteIdentityWay;

    /**
     * 广告-产品信息-配置模式 1统一配置 2分账户配置 3分项目配置
     */
    private String productWay;

    /**
     * 字节小程序连接方式 1所有账户使用同个链接
     */
    private String zjUrlWay;

    /**
     * 素材多账户分配规则 1全账户复用所有账户都使用一样的素材  2平均分配 素材平均分到每个账户中 3分账户选择 每个账户单独选择素材
     */
    private String materialWay;

    /**
     * 标题分配方式  1全账户复用    2平均分配  3分账户选择
     */
    private String titleWay;

    /**
     * 落地页分配方式 1全部相同    2按账户分配  3按项目分配   4按广告分配
     */
    private String siteWay;

    /**
     * 创意组json
     */
    private String ideaGroupJson;

    /**
     * 原生锚点-匹配方式  1每个账户选择一个原生锚点 2每个项目选择一个原生锚点 3每个广告选择一个原生锚点
     */
    private String anchorWay;




}
